

package jetbrains.buildServer.server.rest.data.util.tree;

import java.util.Collection;
import org.jetbrains.annotations.NotNull;

/**
 * Represents tree leaf source data, which is used to build a full scope tree out of given leaves, see {@link ScopeTree}.
 * Holds a collection of data associated with this leaf and counters which representing this data.
 */
public interface LeafInfo<DATA, COUNTERS extends TreeCounters<COUNTERS>> {
  @NotNull
  COUNTERS getCounters();

  @NotNull
  Iterable<Scope> getPath();

  @NotNull
  Collection<DATA> getData();
}